#ifndef COFFEE_HPP
#define COFFEE_HPP

#include "Beverage.hpp"

class Coffee : public Beverage
{
protected:

public:
  Coffee(std::string description)
    :Beverage(description)
  {}

  Coffee(std::string description, double cost)
    :Beverage(description, cost)
  {}

  double Cost()
  {}
};

class HouseBlend : public Coffee
{
protected:
public:
  HouseBlend()
    :Coffee("黑咖啡", 12)
  {}

  std::string GetDescription()
  {
    std::cout << "订单：";
    return _description;
  }

  double Cost() 
  {
    return _cost;
  }
};

class DarkRoast : public Coffee
{
protected:
public:
  DarkRoast()
    :Coffee("黑暗烘烤黑咖啡", 10)
  {}

  std::string GetDescription()
  {
    std::cout << "订单：";
    return _description;
  }
};

class Espresson : public Coffee
{
protected:
public:
  Espresson()
    :Coffee("浓缩咖啡", 15)
  {}

  std::string GetDescription()
  {
    std::cout << "订单：";
    return _description;
  }

  double Cost() 
  {
    return _cost;
  }
};

class Decaf : public Coffee
{
protected:
public:
  Decaf()
    :Coffee("低卡咖啡", 20)
  {}

  std::string GetDescription()
  {
    std::cout << "订单：";
    return _description;
  }

  double Cost() 
  {
    return _cost;
  }
};

#endif
